import * as puppeteer from 'puppeteer-core';
import { installMouseHelper } from "./mouse-helper"

async function sleep(ms: number) {
  return new Promise((resolve, reject) => {
    setTimeout(resolve, ms);
  });
}
async function main() {
  // 启动浏览器
  const browser = await puppeteer.launch({
    // executablePath: 'C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe',
    executablePath: 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe',
    headless: false,
    // 这里要置为 null 否则会出现很小的 viewport
    defaultViewport: null,
    // 启动后浏览器窗口最大化
    args: ['--start-maximized'],
  });;

  try {
    // 创建新页面
    const page = await browser.newPage();
    // 进入搜索引擎，并搜索csdn
    await page.goto('https://www.baidu.com/');
    // 或者使用bing搜索：await page.goto('https://www.bing.com/');
    //  https://www.csdn.net/
    await page.type('input[name="wd"]', 'csdn', { delay: 300 });
    await page.keyboard.press('Enter');
    // 等待搜索结果加载完成
    await page.waitForNavigation();
    await page.waitForSelector('h3.t a');

    // 点击进入CSDN
    const links1 = await page.$$('h3.t a');
    for (const link of links1) {
      // 获取链接文本
      const value = await page.evaluate(el => el.textContent, link);
      // 检查文本是否包含我们要找的内容
      if (value && value.includes('CSDN - 专业开发者社区')) {
        console.log('value2', value);
        await link.click();
        break;
      }
    }
    
    // await page.click('a[data-click="true"]');
    // await page.click('.c-title.tts-title', {
    //   delay: 1000
    // });
    // const a = await page.waitForXPath('//*[@id="1"]/div/div[1]/h3/a[1]');
    // if (!a) {
    //   return;
    // }
    // const pos = await a.clickablePoint();
    // page.mouse.move(pos.x, pos.y, { steps: 10 });
    // page.mouse.click(pos.x, pos.y);

    // 点击登录按钮
    // await page.waitForSelector("/html/body/div[@id='toolbarBox']/div[@id='csdn-toolbar']/div[@class='toolbar-inside exp3']/div[@class='toolbar-container']/div[@class='toolbar-container-right']/div[@class='toolbar-btns onlyUser']/div[@class='toolbar-btn toolbar-btn-login toolbar-btn-login-new csdn-toolbar-fl']/a[@class='toolbar-btn-loginfun']");
    // const login = await page.$$();
    await page.waitForSelector('a.toolbar-btn-loginfun');

    // 点击进入CSDN
    const login = await page.$$('a.toolbar-btn-loginfun');
    for (const link of login) {
      // 获取链接文本
      const value = await page.evaluate(el => el.textContent, link);
      // 检查文本是否包含我们要找的内容
      if (value && value.includes('CSDN - 专业开发者社区')) {
        console.log('value2', value);
        await link.click();
        break;
      }
    }
    await page.waitForNavigation();
    // 输入账号密码登录
    await page.type('#loginUserName', 'your_username');
    await page.type('#loginPassword', 'your_password');
    await page.click('.btn-login');

    // 等待登录成功
    await page.waitForNavigation();

    // 在CSDN上随便点击几个链接
    const links = await page.$$('a');
    for (const link of links) {
      const href = await page.evaluate(el => el.href, link);
      console.log(href);
      await link.click();
      await page.waitForNavigation();
      // 可以在这里处理新闻内容或其他操作
      await page.goBack(); // 返回上一页，继续点击下一个链接
    }
  } catch (error) {
    console.error(error);
  } finally {
    // 关闭浏览器
    //  await browser.close();
  }
}

main();
